<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 创建一个对象
			var obj = {
				name:"孙悟空",
				age:18,
				gender:"男",
				sayName:function(){
					alert(this.name);
				}
			};
			// var obj2 = {
			// 	name:"猪八戒",
			// 	age:28,
			// 	gender:"男",
			// 	sayName:function(){
			// 		alert(this.name);
			// 	}
			// };
			// var obj3 = {
			// 	name:"沙和尚",
			// 	age:38,
			// 	gender:"男",
			// 	sayName:function(){
			// 		alert(this.name);
			// 	}
			// };
			// obj.sayName();
			
			// 使用工厂方法创建对象
			// 通过该方法可以大批量的创建对象
			function createRerson(name,age,gender){
				// 创建一个新的对象
				var obj = new Object();				
				// 向对象中添加属性
				obj.name = name;
				obj.age = age;
				obj.gender = gender;
				obj.sayName = function(){
					alert(this.name);
				}			
				// 将新的对象返回
				return obj;
			}
			
			// 用来创建狗的对象
			function createDog(name,age){
				var obj = new Object();
				obj.name = name;
				obj.age = age;
				obj.sayHello = function(){
					alert("汪汪~~");
				}
				return obj;
			}
			
			var obj2 = createRerson("猪八戒",28,"男");
			var obj3 = createRerson("白骨精",16,"女");
			var obj4 = createRerson("蜘蛛精",18,"女");
			obj3.sayName();
			console.log(obj2);
			console.log(obj3);
			console.log(obj4);
			
			// 使用工厂方法创建的对象,使用的构造函数都是Object
			// 所以创建的对象都是Object这个类型,就导致我们无法区分多种不同类型的对象
			
			// 创建一个狗的对象
			var dog = createDog("旺财",3);
			console.log(dog);
			console.log(obj4);
			
		</script>
	</head>
	<body>
	</body>
</html>
